/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager;

import br.com.deployment.entidade.selo.DetalheEntradaSelo;
import br.com.deployment.entidade.selo.TipoSelo;
import br.com.deployment.interfacedao.TipoSeloDao;
import br.com.deployment.servico.TipoSeloServico;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author roniere
 */
@ManagedBean
@SessionScoped
public class ManagerEntradaSelo implements Serializable{
    
    @EJB
    TipoSeloServico tipoSeloServico;
    
    public DetalheEntradaSelo detalheEntradaSelo;
    public List<DetalheEntradaSelo> lstDetalhe;

    public ManagerEntradaSelo() {
        System.err.println("Construtor");
    }
    
    @PostConstruct
    public void init(){
        System.err.println("INIT");
        this.detalheEntradaSelo = new DetalheEntradaSelo();
        this.detalheEntradaSelo.setPreco(new Double(0L));
        this.lstDetalhe = new ArrayList<DetalheEntradaSelo>(); 
    }
    public void reinit(){
        detalheEntradaSelo = new DetalheEntradaSelo();
        System.err.println(detalheEntradaSelo);
    }
      public void addList(){
          System.err.println("+++++++++++++++++++++++++"+detalheEntradaSelo);
        lstDetalhe.add(detalheEntradaSelo);
        detalheEntradaSelo = new DetalheEntradaSelo();
        this.detalheEntradaSelo.setPreco(new Double(0L));
     
    }

    public void handleSelectTipoSelo(SelectEvent event) {
        TipoSelo ts = (TipoSelo) event.getObject();
        detalheEntradaSelo.setTipoSelo(tipoSeloServico.find(ts.getId()));
    }
    public void remove(DetalheEntradaSelo ds){
        lstDetalhe.remove(ds);
        System.err.println("+++++++++++++++++++++++++");
    }
    public void editar() {
        FacesContext context = FacesContext.getCurrentInstance();
        Map map = context.getExternalContext().getRequestParameterMap();       
        String x = (String) map.get("param");
        int ds = Integer.parseInt(x);        
        detalheEntradaSelo = lstDetalhe.get(ds);
        lstDetalhe.remove(ds);
        
        System.err.println(ds);
        
    }
    
    public void redirect(String string) {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            context.getExternalContext().redirect(string);
        } catch (IOException ex) {
            Logger.getLogger(ManagerEntradaSelo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    
    public DetalheEntradaSelo getDetalheEntradaSelo() {
        return detalheEntradaSelo;
    }

    public List<DetalheEntradaSelo> getLstDetalhe() {
        return lstDetalhe;
    }

    public void setLstDetalhe(List<DetalheEntradaSelo> lstDetalhe) {
        this.lstDetalhe = lstDetalhe;
    }

    public void setDetalheEntradaSelo(DetalheEntradaSelo detalheEntradaSelo) {
        this.detalheEntradaSelo = detalheEntradaSelo;
    }
}
